package com.wang.springbootinit.controller.admin;

import com.wang.springbootinit.common.BaseResponse;
import com.wang.springbootinit.common.ResultUtils;
import com.wang.springbootinit.model.dto.NoticeQueryDTO;
import com.wang.springbootinit.model.entity.Notice;
import com.wang.springbootinit.service.NoticeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 通知管理后台接口
 * 
 * @author wang
 */
@RestController
@RequestMapping("/admin/notice")
public class AdminNoticeController {
    @Autowired
    private NoticeService noticeService;

    /**
     * 创建新通知
     * @param notice 通知信息
     * @return 创建成功的通知信息
     */
    @PostMapping("/add")
    public BaseResponse addNotice(@RequestBody Notice notice) {
        return ResultUtils.success(noticeService.addNotice(notice));
    }

    /**
     * 更新通知信息
     * @param notice 需要更新的通知信息
     * @return 更新后的通知信息
     */
    @PostMapping("/update")
    public BaseResponse updateNotice(@RequestBody Notice notice) {
        return ResultUtils.success(noticeService.updateNotice(notice));
    }

    /**
     * 删除指定通知
     * @param noticeId 通知ID
     * @return 删除结果
     */
    @PostMapping("/delete/{id}")
    public BaseResponse deleteNotice(@PathVariable("id") Long noticeId) {
        return ResultUtils.success(noticeService.deleteNotice(noticeId));
    }

    /**
     * 分页获取通知列表
     * @param queryDTO 查询条件
     * @return 分页通知数据
     */
    @GetMapping("/page")
    public BaseResponse getNoticePage(NoticeQueryDTO queryDTO) {
        return ResultUtils.success(noticeService.getNoticePage(queryDTO));
    }

    /**
     * 获取指定通知详情
     * @param noticeId 通知ID
     * @return 通知详细信息
     */
    @GetMapping("/get/{id}")
    public BaseResponse getNoticeById(@PathVariable("id") Long noticeId) {
        return ResultUtils.success(noticeService.getNoticeById(noticeId));
    }
} 